# 声明函数
# def shi():
#     print("举头望明月，低头思故乡。")
# shi()
# 调用函数
# 声明函数
# def add():
#     a = 3
#     b = 5
#     s = a + b
#     print(s)
#     return a #只是返回值
# 调用
# c = add()
# print(c)
# 函数的参数传递
# 第一组
# def add(a,b):  # a,b为形参
#      print(a + b)
# add(1,3)  #实参为常量
#第二组
# a = 1
# b = 3
# add(a,b)  #实参为常量
#第三组
# add(2*3,4*5)  #实参为表达式
# c = 3
# add(8,c*3)  #实参为常量,变量和表达式组合
#位置参数
# def score(a,b,c):
#     print('张三成绩为:',a)
#     print('李四成绩为:',b)
#     print('王五成绩为:',c)
# score(85,92,60)
#
# def reg(name,age,sex="女"):
#     print('姓名:{} 年龄{} 性别{}'.format(name,age,sex))
# reg('张三',20)
# reg('李四'，21，'男')
# 
# 可变参数
# def fav(*fru):
#     print('我喜欢的水果有:')
#     for i in fru:
#         print(i)
#
# fav('苹果')   #传递1个参数
# fav('苹果','桃子','西瓜')   #传递3个参数
# fav('菠萝','香蕉','橘子','哈密瓜','草莓','葡萄')   #传递6个参数
# 
# 参数的值大于等于2，如果声明函数的时候有其他形参，通常会把可变长参数放在最后
# def show(a,b,*l):
#     print(a)
#     print(b)
#     print(l)
# 
# show(1,2,4,5,6,7,9,56)
# 
# 求任意矩形面积与周长
# def rectangle():
#     a = int(input('请输入矩形的长(整数值):'))
#     b = int(input('请输入矩形的宽(整数值):'))
#     s = a*b
#     c = 2*(a+b)
#     print('该矩形面积为:',s)
#     print('该矩形周长为:',c)
# rectangle()
# 返回值
# def add(a,b):
#     c = a + b
#     return c,a,b,a*b,a-b
# 
# d = add(1,2)
# print(d)
# 变量的作用域
# def fun():
#     a = 20
#     return a
# 
# a = 10
# print(a)
# print(fun())
# 找到偶数，找到大于10的数
# def pro(*a):
#     for i in a:
#         if i % 2 == 0:
#           print('该数据为偶数:',i)
#         if i > 10:
#             print('该数据为大于10的数据')
# 
# pro(1,2,3,4,7,9,30,60,80)
#
# 利用递归计算100的阶乘 100！
# def fac(n):
#     if n <= 1:
#         return 1
#     else:
#         return n*fac(n-1) #100*fac(99)  100*99*98*...*2*1
#
# num = int(input('请输入一个正整数:')) #输入一个100
# s = fac(num)
# print(num,'的阶乘是:',s) #5*4*3*2*1=120
# 例题1:利用递归计算1~100相加之和
# def sum(n):
#     if n == 1:
#         return 1
#     else:
#         return  n+sum(n-1)
# 
# print('1~100相加的和为',sum(100))
# # 计算斐波那契数列 F(0)=0,F(1)=1,F(n)=n-1+F(n-2)(n>=2)的第n项
# def fibo(n):
#     if n <= 2:
#         return 1
#     else:
#         return  fibo(n-1)+fibo(n-2)
# 
# print('斐波那契数列的第{}项为{}'.format(7,fibo(7)))
#匿名函数
# <函数名>=lambda <参数列表>:<表达式>
#使用匿名函数实现a+b+c
#sum = lambda a,b,c: a+b+c
#print(sum(1,2,3))
#编写lambda函数，参数为正方形的边长m，输入正方形的面积。
#fun = lambda m:m**2
#print(fun(5))